
//**************************************************************************/
// Copyright (c) 2010 Autodesk, Inc.
// All rights reserved.
//																					   
// Use of this software is subject to the terms of the Autodesk license
// agreement provided at the time of installation or download, or which
// otherwise accompanies this software in either electronic or hard copy form.
//
//**************************************************************************/
// DESCRIPTION:
// CREATED: August 2010
//**************************************************************************/

#if defined(JAMBUILD)
#include <Mudbox/mudbox.h>
#include <MapExtractor/MapExtractorInterface.h>
#include <UVlessPainting/UVGeneratorInterface.h>
#else
#include "../../include/Mudbox/mudbox.h"
#include "../../include/MapExtractor/MapExtractorInterface.h"
#include "../../include/UVlessPainting/UVGeneratorInterface.h"
#endif

using namespace mudbox;

class PtexPaintExporter : public PaintLayerExporter
{
	DECLARE_CLASS;

	PtexPaintExporter();

	// This function returns the supported file types by this class.
	virtual QVector<FileExtension> SupportedExtensions( void );
	// This function does the exporting.
	virtual void Export( const QString &sFileName, int iFileTypeIndex, const Mesh *pSourceSurface, TexturePool *pSource );
	// This function performs a fast export, without doing a map extraction internally. This is faster, and preserves texture queality.
	template < typename tType, int iMultiplier >
	void FastExport( const QString &sFileName, int iFileTypeIndex, const Mesh *pSourceSurface, TexturePool *pSource, const UVGeneratorNode *pUVGenerator );

	abool m_bUseBaseLevel;
};